[INFO] fetching crate ramhorns 1.0.1...
[INFO] fixing ramhorns-1.0.1 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate ramhorns 1.0.1 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate ramhorns 1.0.1
[INFO] finished tweaking crates.io crate ramhorns 1.0.1
[INFO] tweaked toml for crates.io crate ramhorns 1.0.1 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate ramhorns 1.0.1 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 22 packages to latest compatible versions
[INFO] [stderr]       Adding logos v0.14.4 (available: v0.16.1)
[INFO] [stderr]       Adding pulldown-cmark v0.12.2 (available: v0.13.4)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] bba57de943edc8e6cd0e02e647b5dd43ec572f0f43c2b25b899403c1a6e9d147
[INFO] running `Command { std: "docker" "start" "bba57de943edc8e6cd0e02e647b5dd43ec572f0f43c2b25b899403c1a6e9d147", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bba57de943edc8e6cd0e02e647b5dd43ec572f0f43c2b25b899403c1a6e9d147" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bba57de943edc8e6cd0e02e647b5dd43ec572f0f43c2b25b899403c1a6e9d147", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bba57de943edc8e6cd0e02e647b5dd43ec572f0f43c2b25b899403c1a6e9d147" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Compiling pulldown-cmark v0.12.2
[INFO] [stderr]     Checking pulldown-cmark-escape v0.11.0
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]    Compiling logos-codegen v0.14.4
[INFO] [stderr]    Compiling ramhorns-derive v1.0.1
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]    Compiling logos-derive v0.14.4
[INFO] [stderr]     Checking logos v0.14.4
[INFO] [stderr]     Checking ramhorns v1.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.77s
[INFO] [stderr] crater-edition-check: ramhorns v1.0.1 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking ramhorns v1.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.26s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]     Checking ramhorns v1.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/content.rs:317:21
[INFO] [stdout]     |
[INFO] [stdout] 317 |         if let Some(ref inner) = self {
[INFO] [stdout]     |                     ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:317:16
[INFO] [stdout]     |
[INFO] [stdout] 317 |         if let Some(ref inner) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]     = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 317 -         if let Some(ref inner) = self {
[INFO] [stdout] 317 +         if let Some(inner) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/content.rs:330:21
[INFO] [stdout]     |
[INFO] [stdout] 330 |         if let Some(ref item) = self {
[INFO] [stdout]     |                     ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:330:16
[INFO] [stdout]     |
[INFO] [stdout] 330 |         if let Some(ref item) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 330 -         if let Some(ref item) = self {
[INFO] [stdout] 330 +         if let Some(item) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `ramhorns`
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/content.rs:363:19
[INFO] [stdout]     |
[INFO] [stdout] 363 |         if let Ok(ref inner) = self {
[INFO] [stdout]     |                   ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 |         if let Ok(ref inner) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 363 -         if let Ok(ref inner) = self {
[INFO] [stdout] 363 +         if let Ok(inner) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/template/mod.rs
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, (), parse::Tag>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/template/parse.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Logos)]
[INFO] [stdout]    |                                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/template/parse.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Logos)]
[INFO] [stdout]    |                                             ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Logos + use<'s>)]
[INFO] [stdout]    |                                                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/template/parse.rs
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, (), Closing>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/template/parse.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[derive(Logos)]
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/template/parse.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[derive(Logos)]
[INFO] [stdout]     |          ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[derive(Logos + use<'s>)]
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: expected one of `(`, `,`, `::`, or `=`, found `+`
[INFO] [stderr]              --> src/template/parse.rs:16:51
[INFO] [stderr]               |
[INFO] [stderr]            16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Logos + use<'s>)]
[INFO] [stderr]               |                                                   ^ expected one of `(`, `,`, `::`, or `=`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected one of `(`, `,`, `::`, or `=`, found `+`
[INFO] [stderr]               --> src/template/parse.rs:130:16
[INFO] [stderr]                |
[INFO] [stderr]            130 | #[derive(Logos + use<'s>)]
[INFO] [stderr]                |                ^ expected one of `(`, `,`, `::`, or `=`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `logos` in this scope
[INFO] [stderr]              --> src/template/parse.rs:17:3
[INFO] [stderr]               |
[INFO] [stderr]            17 | #[logos(
[INFO] [stderr]               |   ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]               = note: `logos` is in scope, but it is a crate, not an attribute
[INFO] [stderr]            help: `logos` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:25:7
[INFO] [stderr]               |
[INFO] [stderr]            25 |     #[token("{{")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:29:7
[INFO] [stderr]               |
[INFO] [stderr]            29 |     #[token("{{&")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:30:7
[INFO] [stderr]               |
[INFO] [stderr]            30 |     #[token("{{{", |lex| lex.extras = Braces::Three)]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:34:7
[INFO] [stderr]               |
[INFO] [stderr]            34 |     #[token("{{#")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:38:7
[INFO] [stderr]               |
[INFO] [stderr]            38 |     #[token("{{^")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:42:7
[INFO] [stderr]               |
[INFO] [stderr]            42 |     #[token("{{/")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:50:7
[INFO] [stderr]               |
[INFO] [stderr]            50 |     #[token("{{!")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:54:7
[INFO] [stderr]               |
[INFO] [stderr]            54 |     #[token("{{>")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `logos` in this scope
[INFO] [stderr]               --> src/template/parse.rs:131:3
[INFO] [stderr]                |
[INFO] [stderr]            131 | #[logos(
[INFO] [stderr]                |   ^^^^^
[INFO] [stderr]                |
[INFO] [stderr]                = note: `logos` is in scope, but it is a crate, not an attribute
[INFO] [stderr]            help: `logos` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]                |
[INFO] [stderr]            135 + #[derive(Logos)]
[INFO] [stderr]            136 | enum Closing {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]               --> src/template/parse.rs:136:7
[INFO] [stderr]                |
[INFO] [stderr]            136 |     #[token("}}", |lex| {
[INFO] [stderr]                |       ^^^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]                |
[INFO] [stderr]            135 + #[derive(Logos)]
[INFO] [stderr]            136 | enum Closing {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]               --> src/template/parse.rs:140:7
[INFO] [stderr]                |
[INFO] [stderr]            140 |     #[token("}}}")]
[INFO] [stderr]                |       ^^^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]                |
[INFO] [stderr]            135 + #[derive(Logos)]
[INFO] [stderr]            136 | enum Closing {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]               --> src/template/parse.rs:143:7
[INFO] [stderr]                |
[INFO] [stderr]            143 |     #[regex(r"[^ \}]+")]
[INFO] [stderr]                |       ^^^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]                |
[INFO] [stderr]            135 + #[derive(Logos)]
[INFO] [stderr]            136 | enum Closing {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0204]: the trait `Copy` cannot be implemented for this type
[INFO] [stderr]               --> src/template/mod.rs:139:19
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |                        ---- in this derive macro expansion
[INFO] [stderr]            139 | pub(crate) struct Block<'tpl> {
[INFO] [stderr]                |                   ^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     -------- this field does not implement `Copy`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `parse::Tag` in the current scope
[INFO] [stderr]               --> src/template/parse.rs:162:28
[INFO] [stderr]                |
[INFO] [stderr]             23 | pub enum Tag {
[INFO] [stderr]                | ------------ variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]            ...
[INFO] [stderr]            162 |         let mut lex = Tag::lexer(source);
[INFO] [stderr]                |                            ^^^^^ variant, associated function, or constant not found in `parse::Tag`
[INFO] [stderr]                |
[INFO] [stderr]                = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]                = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                        candidate #1: `Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `parse::Tag` doesn't implement `Debug`
[INFO] [stderr]               --> src/template/mod.rs:143:5
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |          ----- in this derive macro expansion
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     ^^^^^^^^ the trait `Debug` is not implemented for `parse::Tag`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `parse::Tag` with `#[derive(Debug)]`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 + #[derive(Debug)]
[INFO] [stderr]             24 | pub enum Tag {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `parse::Tag: Clone` is not satisfied
[INFO] [stderr]               --> src/template/mod.rs:143:5
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |                 ----- in this derive macro expansion
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     ^^^^^^^^ the trait `Clone` is not implemented for `parse::Tag`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::clone::AssertParamIsClone`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/clone.rs:458:0
[INFO] [stderr]            help: consider annotating `parse::Tag` with `#[derive(Clone)]`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 + #[derive(Clone)]
[INFO] [stderr]             24 | pub enum Tag {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `parse::Tag`
[INFO] [stderr]               --> src/template/mod.rs:143:5
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |                              --------- in this derive macro expansion
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     ^^^^^^^^
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `parse::Tag`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 | pub enum Tag {
[INFO] [stderr]                | ^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `parse::Tag` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 + #[derive(PartialEq)]
[INFO] [stderr]             24 | pub enum Tag {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `parse::Tag: Eq` is not satisfied
[INFO] [stderr]               --> src/template/mod.rs:143:5
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |                                         -- in this derive macro expansion
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     ^^^^^^^^ the trait `Eq` is not implemented for `parse::Tag`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::cmp::AssertParamIsEq`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cmp.rs:380:0
[INFO] [stderr]            help: consider annotating `parse::Tag` with `#[derive(Eq)]`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 + #[derive(Eq)]
[INFO] [stderr]             24 | pub enum Tag {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 21 previous errors
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            Some errors have detailed explanations: E0204, E0277, E0369, E0599.
[INFO] [stderr]            
[INFO] [stderr]            For more information about an error, try `rustc --explain E0204`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/content.rs:317:21
[INFO] [stdout]     |
[INFO] [stdout] 317 |         if let Some(ref inner) = self {
[INFO] [stdout]     |                     ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:317:16
[INFO] [stdout]     |
[INFO] [stdout] 317 |         if let Some(ref inner) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]     = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 317 -         if let Some(ref inner) = self {
[INFO] [stdout] 317 +         if let Some(inner) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `ramhorns`
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/content.rs:330:21
[INFO] [stdout]     |
[INFO] [stdout] 330 |         if let Some(ref item) = self {
[INFO] [stdout]     |                     ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:330:16
[INFO] [stdout]     |
[INFO] [stdout] 330 |         if let Some(ref item) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 330 -         if let Some(ref item) = self {
[INFO] [stdout] 330 +         if let Some(item) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/template/mod.rs
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/content.rs:363:19
[INFO] [stdout]     |
[INFO] [stdout] 363 |         if let Ok(ref inner) = self {
[INFO] [stdout]     |                   ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 |         if let Ok(ref inner) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 363 -         if let Ok(ref inner) = self {
[INFO] [stdout] 363 +         if let Ok(inner) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/template/parse.rs
[INFO] [stderr]   = cause: error: expected one of `(`, `,`, `::`, or `=`, found `+`
[INFO] [stderr]              --> src/template/parse.rs:16:51
[INFO] [stderr]               |
[INFO] [stderr]            16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Logos + use<'s>)]
[INFO] [stderr]               |                                                   ^ expected one of `(`, `,`, `::`, or `=`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected one of `(`, `,`, `::`, or `=`, found `+`
[INFO] [stderr]               --> src/template/parse.rs:130:16
[INFO] [stderr]                |
[INFO] [stderr]            130 | #[derive(Logos + use<'s>)]
[INFO] [stderr]                |                ^ expected one of `(`, `,`, `::`, or `=`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `logos` in this scope
[INFO] [stderr]              --> src/template/parse.rs:17:3
[INFO] [stderr]               |
[INFO] [stderr]            17 | #[logos(
[INFO] [stderr]               |   ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]               = note: `logos` is in scope, but it is a crate, not an attribute
[INFO] [stderr]            help: `logos` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:25:7
[INFO] [stderr]               |
[INFO] [stderr]            25 |     #[token("{{")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:29:7
[INFO] [stderr]               |
[INFO] [stderr]            29 |     #[token("{{&")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:30:7
[INFO] [stderr]               |
[INFO] [stderr]            30 |     #[token("{{{", |lex| lex.extras = Braces::Three)]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:34:7
[INFO] [stderr]               |
[INFO] [stderr]            34 |     #[token("{{#")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:38:7
[INFO] [stderr]               |
[INFO] [stderr]            38 |     #[token("{{^")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:42:7
[INFO] [stderr]               |
[INFO] [stderr]            42 |     #[token("{{/")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:50:7
[INFO] [stderr]               |
[INFO] [stderr]            50 |     #[token("{{!")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/template/parse.rs:54:7
[INFO] [stderr]               |
[INFO] [stderr]            54 |     #[token("{{>")]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            23 + #[derive(Logos)]
[INFO] [stderr]            24 | pub enum Tag {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `logos` in this scope
[INFO] [stderr]               --> src/template/parse.rs:131:3
[INFO] [stderr]                |
[INFO] [stderr]            131 | #[logos(
[INFO] [stderr]                |   ^^^^^
[INFO] [stderr]                |
[INFO] [stderr]                = note: `logos` is in scope, but it is a crate, not an attribute
[INFO] [stderr]            help: `logos` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]                |
[INFO] [stderr]            135 + #[derive(Logos)]
[INFO] [stderr]            136 | enum Closing {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]               --> src/template/parse.rs:136:7
[INFO] [stderr]                |
[INFO] [stderr]            136 |     #[token("}}", |lex| {
[INFO] [stderr]                |       ^^^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]                |
[INFO] [stderr]            135 + #[derive(Logos)]
[INFO] [stderr]            136 | enum Closing {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]               --> src/template/parse.rs:140:7
[INFO] [stderr]                |
[INFO] [stderr]            140 |     #[token("}}}")]
[INFO] [stderr]                |       ^^^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]                |
[INFO] [stderr]            135 + #[derive(Logos)]
[INFO] [stderr]            136 | enum Closing {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]               --> src/template/parse.rs:143:7
[INFO] [stderr]                |
[INFO] [stderr]            143 |     #[regex(r"[^ \}]+")]
[INFO] [stderr]                |       ^^^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]                |
[INFO] [stderr]            135 + #[derive(Logos)]
[INFO] [stderr]            136 | enum Closing {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0204]: the trait `Copy` cannot be implemented for this type
[INFO] [stderr]               --> src/template/mod.rs:139:19
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |                        ---- in this derive macro expansion
[INFO] [stderr]            139 | pub(crate) struct Block<'tpl> {
[INFO] [stderr]                |                   ^^^^^
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     -------- this field does not implement `Copy`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `parse::Tag` in the current scope
[INFO] [stderr]               --> src/template/parse.rs:162:28
[INFO] [stderr]                |
[INFO] [stderr]             23 | pub enum Tag {
[INFO] [stderr]                | ------------ variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]            ...
[INFO] [stderr]            162 |         let mut lex = Tag::lexer(source);
[INFO] [stderr]                |                            ^^^^^ variant, associated function, or constant not found in `parse::Tag`
[INFO] [stderr]                |
[INFO] [stderr]                = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]                = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                        candidate #1: `Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `parse::Tag` doesn't implement `Debug`
[INFO] [stderr]               --> src/template/mod.rs:143:5
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |          ----- in this derive macro expansion
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     ^^^^^^^^ the trait `Debug` is not implemented for `parse::Tag`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `parse::Tag` with `#[derive(Debug)]`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 + #[derive(Debug)]
[INFO] [stderr]             24 | pub enum Tag {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `parse::Tag: Clone` is not satisfied
[INFO] [stderr]               --> src/template/mod.rs:143:5
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |                 ----- in this derive macro expansion
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     ^^^^^^^^ the trait `Clone` is not implemented for `parse::Tag`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::clone::AssertParamIsClone`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/clone.rs:458:0
[INFO] [stderr]            help: consider annotating `parse::Tag` with `#[derive(Clone)]`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 + #[derive(Clone)]
[INFO] [stderr]             24 | pub enum Tag {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `parse::Tag`
[INFO] [stderr]               --> src/template/mod.rs:143:5
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |                              --------- in this derive macro expansion
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     ^^^^^^^^
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `parse::Tag`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 | pub enum Tag {
[INFO] [stderr]                | ^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `parse::Tag` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 + #[derive(PartialEq)]
[INFO] [stderr]             24 | pub enum Tag {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `parse::Tag: Eq` is not satisfied
[INFO] [stderr]               --> src/template/mod.rs:143:5
[INFO] [stderr]                |
[INFO] [stderr]            138 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stderr]                |                                         -- in this derive macro expansion
[INFO] [stderr]            ...
[INFO] [stderr]            143 |     tag: Tag,
[INFO] [stderr]                |     ^^^^^^^^ the trait `Eq` is not implemented for `parse::Tag`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::cmp::AssertParamIsEq`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cmp.rs:380:0
[INFO] [stderr]            help: consider annotating `parse::Tag` with `#[derive(Eq)]`
[INFO] [stderr]               --> src/template/parse.rs:23:1
[INFO] [stderr]                |
[INFO] [stderr]             23 + #[derive(Eq)]
[INFO] [stderr]             24 | pub enum Tag {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 21 previous errors
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            Some errors have detailed explanations: E0204, E0277, E0369, E0599.
[INFO] [stderr]            
[INFO] [stderr]            For more information about an error, try `rustc --explain E0204`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.01s
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, (), parse::Tag>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/template/parse.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Logos)]
[INFO] [stdout]    |                                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/template/parse.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Logos)]
[INFO] [stdout]    |                                             ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Logos + use<'s>)]
[INFO] [stdout]    |                                                   +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, (), Closing>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/template/parse.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[derive(Logos)]
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/template/parse.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[derive(Logos)]
[INFO] [stdout]     |          ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 130 | #[derive(Logos + use<'s>)]
[INFO] [stdout]     |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: ramhorns v1.0.1 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking ramhorns v1.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/content.rs:317:21
[INFO] [stdout]     |
[INFO] [stdout] 317 |         if let Some(ref inner) = self {
[INFO] [stdout]     |                     ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:317:16
[INFO] [stdout]     |
[INFO] [stdout] 317 |         if let Some(ref inner) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 317 -         if let Some(ref inner) = self {
[INFO] [stdout] 317 +         if let Some(inner) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/content.rs:330:21
[INFO] [stdout]     |
[INFO] [stdout] 330 |         if let Some(ref item) = self {
[INFO] [stdout]     |                     ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:330:16
[INFO] [stdout]     |
[INFO] [stdout] 330 |         if let Some(ref item) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 330 -         if let Some(ref item) = self {
[INFO] [stdout] 330 +         if let Some(item) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/content.rs:363:19
[INFO] [stdout]     |
[INFO] [stdout] 363 |         if let Ok(ref inner) = self {
[INFO] [stdout]     |                   ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 |         if let Ok(ref inner) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 363 -         if let Ok(ref inner) = self {
[INFO] [stdout] 363 +         if let Ok(inner) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/content.rs:317:21
[INFO] [stdout]     |
[INFO] [stdout] 317 |         if let Some(ref inner) = self {
[INFO] [stdout]     |                     ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:317:16
[INFO] [stdout]     |
[INFO] [stdout] 317 |         if let Some(ref inner) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 317 -         if let Some(ref inner) = self {
[INFO] [stdout] 317 +         if let Some(inner) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/content.rs:330:21
[INFO] [stdout]     |
[INFO] [stdout] 330 |         if let Some(ref item) = self {
[INFO] [stdout]     |                     ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:330:16
[INFO] [stdout]     |
[INFO] [stdout] 330 |         if let Some(ref item) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 330 -         if let Some(ref item) = self {
[INFO] [stdout] 330 +         if let Some(item) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/content.rs:363:19
[INFO] [stdout]     |
[INFO] [stdout] 363 |         if let Ok(ref inner) = self {
[INFO] [stdout]     |                   ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/content.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 |         if let Ok(ref inner) = self {
[INFO] [stdout]     |                ^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 363 -         if let Ok(ref inner) = self {
[INFO] [stdout] 363 +         if let Ok(inner) = self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ramhorns` (lib) due to 3 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `ramhorns` (lib test) due to 3 previous errors
[INFO] running `Command { std: "docker" "inspect" "bba57de943edc8e6cd0e02e647b5dd43ec572f0f43c2b25b899403c1a6e9d147", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bba57de943edc8e6cd0e02e647b5dd43ec572f0f43c2b25b899403c1a6e9d147", kill_on_drop: false }`
[INFO] [stdout] bba57de943edc8e6cd0e02e647b5dd43ec572f0f43c2b25b899403c1a6e9d147
